<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>typewriter-effect</title>
    <style>
        .typewriter-effect {
            display: flex;
            justify-content: center;
            font-family: monospace;
            font-size: 25px;
            color: #535455;
            font-weight: 500;
        }
        .text {
            max-width: 0;
            animation: typing 3s steps(var(--characters--)) infinite;
            white-space: nowrap;
            overflow: hidden;
        }
        .typewriter-effect::after {
            content: " |";
            animation: blink 1s infinite;
            animation-timing-function: step-end;
        }
        @keyframes typing {
            75%,100% {
                max-width: calc(var(--characters--) * 1ch);
            }
        }
        @keyframes blink {
            0%,75%,100% {
                opacity: 1;
            }
            25% {
                opacity: 0;
            }
        }
    </style>
</head>
<body>
    <div class="typewriter-effect">
        <div class="text" id="typewriter-text"></div>
    </div>
    <script>
        const typeWriter = document.getElementById("typewriter-text");
        const createWriter = (text = 'Lorem ipsum dolor sit amet.') => {
            typeWriter.innerHTML = text;
            typeWriter.style.setProperty('--characters--',text.length);
        }
        createWriter()
    </script>
</body>
</html>